ใน NumPy, การจัดการความแม่นยำ คือการเลือกขนาดบิตอย่างตั้งใจเพื่อสมดุลระหว่างประสิทธิภาพหน่วยความจำกับความถูกต้องทางตัวเลข แตกต่างจากจำนวนเต็มมาตรฐานของพีทอนที่มีความแม่นยำไม่จำกัด แต่ NumPy ใช้ชนิดข้อมูลแบบคงที่ตามภาษาซี เช่น int32_t, uint64_t)
1. ลำดับประเภทข้อมูล
dtypes ของ NumPy กำหนดขนาดหน่วยความจำ ขณะที่ np.int_() ให้ขนาดขึ้นอยู่กับแพลตฟอร์ม ระบบที่มั่นคงควรพึ่งพา ชื่อเรียกประเภทข้อมูลขนาดคงที่ (ตาราง: หน้า 34) เพื่อให้แน่ใจว่ามีความสอดคล้องกันในฮาร์ดแวร์ทุกชนิด
- จำนวนเต็ม:
int8_t,int16_t,int32_t,int64_t. - จำนวนบวก (ไม่มีเครื่องหมาย):
uint8_tถึงuint64_t. - ตัวชี้ (ตัวแปรชี้ตำแหน่ง):
intptr_t,uintptr_t.
2. เครื่องมือสำหรับตรวจสอบข้อมูล
ก่อนดำเนินการคำนวณ ให้ใช้ np.iinfo() และ np.finfo() เพื่อตรวจสอบขอบเขต ตัวอย่างเช่น 1 + np.finfo(np.longdouble).eps ระบุค่า machine epsilon — ค่าที่เป็นเกณฑ์จำกัด ที่การบวกจะไม่เปลี่ยนแปลงค่าผลลัพธ์อีกต่อไป
3. กลไกการล้นข้อมูล
NumPy ไม่แจ้งข้อผิดพลาดเมื่อเกิดการล้นข้อมูล แต่จะล้มเหลวโดยเงียบ ใช้ np.power(100, 8, dtype=np.int32) จะทำให้เกิดการตัดทอน ขณะที่ float64 จะเปลี่ยนไปเป็น infใช้ np.issubdtype(d, np.floating) เพื่อตรวจสอบหมวดหมู่ก่อนดำเนินการ